package Elementos;

/**
 * B bomba
 * E estrella
 * F florFuego
 * G goomba
 * H hongoVerde
 * K koopaTroopa
 * L ladrillo
 * M ladrilloMagico
 * S superHongo
 */
public class Celda {
	protected int posX;
	protected int posY;
	protected Elemento item;
	protected boolean transitable;
	
	// Constructores
	public Celda(){
		posX = 0;
		posY = 0;
		item = null;
		transitable = false;
	}
	
	// Dependiendo de la ID se llama al constructor correspondiente de Elemento
	public Celda(char ID){
		posX = 0;
		posY = 0;
		switch(ID){
			case 'L' : {
				item = new Ladrillo(this);
				transitable = false;
				break;
			}
			case 'X' :{
				item = new Ladrillo(this);
				transitable = false;
				break;
			}
			case 'V' :{
				item = new Vacia(this);
				transitable = true;
				break;
			}
			case 'M' :{
				item = new Mario(this);
				transitable = true;
				break;
			}
		}
	}
	
	
	// Dependiendo de la ID se llama al constructor correspondiente de Elemento
	public Celda(char ID, int x, int y){
		posX = x;
		posY = y;
		switch(ID){
			case 'L' : {
				item = new Ladrillo(this);
				transitable = false;
				break;
			}
			case 'X' :{
				item = new Ladrillo(this);
				transitable = false;
				break;
			}
			case 'V' :{
				item = new Vacia(this);
				transitable = true;
				break;
			}
			case 'M' :{
				item = new Mario(this);
				transitable = true;
				break;
			}
		}
	}
	
	// Consultas
	public int getPosX(){
		return posX;
	}
	
	public int getPosY(){
		return posY;
	}
	
	// ESTO PARA MI QUE NO VA, LO DEJO COMENTADO POR LAS DUDAS
	
	public Elemento getElemento(){
		return item;
	}
	
	public boolean getTransitable(){
		return transitable;
	}
	
	public void setPosX(int x){
		posX = x;
	}
	
	public void setPosY(int y){
		posY = y;
	}
	
	public void setTransitable(boolean e){
		transitable = e;
	}
	public void setElement(Elemento e){
		item = e;
	}
}
